//
//  HYWelcomeViewController.swift
//  weibo-01
//
//  Created by 源 何 on 16/9/26.
//  Copyright © 2016年 何源. All rights reserved.
//

import UIKit
import SDWebImage
private let bottomMargin : CGFloat = 120

class HYWelcomeViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //设置背景颜色
        self.view.backgroundColor = UIColor.white
        setupUI()
    }
    
    //执行动画需要放在视图已经显示的生命周期方法
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        
        //执行动画
        startAnimation()
    }
    
    //开始动画
    func startAnimation() {
        
        let offsetY = -(UIScreen.main.bounds.height - bottomMargin - 85)
        
        self.iconView.snp.updateConstraints { (make) in
            make.bottom.equalTo(self.view).offset(offsetY)
        }
        
        //usingSpringWithDamping: 阻尼系数 0 ~ 1 值越小  越弹
        //initialSpringVelocity: 加速度 值越大 加速度越快
        //位移枚举 可以 用 | 表示多个枚举值
        UIView.animate(withDuration: 1.2, delay: 0, usingSpringWithDamping: 0.7, initialSpringVelocity: 5, options: [], animations: { 
            
            //更新约束 自动布局的控件有frame 有frame才会显示
            //自动布局是一种根据约束来自动给控件设置frame
            //自动布局的控件不能够直接改frame 而应该修改约束
            //更新约束 使用update
            //更新的约束 不是立即修改frame
            //frame是在layoutSubviews 方法中根据已经设置好的约束来自动修改控件的frame
            
            //提前布局子视图 -> layoutSubviews -> 动画时间才会奏效
            self.view.layoutIfNeeded()
            }) { (_) in
                UIView.animate(withDuration: 0.5, animations: { 
                    self.welcomeLabel.alpha = 1
                    }, completion: { (_) in
                        print("完成")
                        //切换到TabbarController modal 切换到tabbarcontroller
                        NotificationCenter.default.post(name: NSNotification.Name(KchangeRootViewController), object: nil)
                })
        }
    }

    private func setupUI() {
        
        //添加子控件
        view.addSubview(iconView)
        view.addSubview(welcomeLabel)
        
        //设置约束
        iconView.snp.makeConstraints { (make) in
            make.bottom.equalTo(view.snp.bottom).offset(-bottomMargin)
            make.centerX.equalTo(view)
            make.size.equalTo(CGSize(width: 85, height: 85))
        }
        
        welcomeLabel.snp.makeConstraints { (make) in
            make.top.equalTo(iconView.snp.bottom).offset(20)
            make.centerX.equalTo(iconView)
        }
        
        //设置图片的url地址
        //setImageWith AFNetworking 的方法  AFN只是内存缓存图片
        //let urlString = \
        //URL 隐式的可选类型 实际上还是一个可选类型 强制解包 接收的类型是必选类型才需要强制解包
        iconView.sd_setImage(with: HYUserAccountViewModel.sharedAccountViewModel.iconURL)
        
    }
    
    lazy var iconView: UIImageView = {
        let iv = UIImageView(image: UIImage(named: "avatar_default_big"))
        
        //UIImageView 不是继承自UIControl的
        iv.cornerRadius = 42
        //设置边线
        iv.layer.borderWidth = 1
        //设置边线颜色
//        iv.layer.borderColor =
        iv.layer.borderColor = UIColor.orange.cgColor
        
        return iv
    } ()
    
    lazy var welcomeLabel: UILabel = {
        let l = UILabel(title: "欢迎归来", textColor: UIColor.darkGray, fontSize: 16)
        l.alpha = 0
        return l
    } ()
}
